سامانه اسپلانک (Splunk) چیست و چطور کار میکند؟ برای آشنایی با اسپلانک و آموزش نصب و استفاده از این سامانه تا انتهای این مقاله با سایبرنو همراه باشید.
همه ما میدانیم که امروزه هر سازمانی چندین سرور یا رایانه شخصی در اختیار دارد که سرویسها و پرتالهای مختلفی بر روی آن نصب است. اکثریت این سرویسها برای انجام کارهای سازمان مورد استفاده قرار میگیرند که از جمله آنها میتوان به سامانههای اشتراک اطلاعات همانند Sharepoint، سرویس پست الکترونیکی، اشتراک فایل، اتوماسیون اداری و... اشاره کرد. برخی دیگر از این سرویسها نیز ممکن است برای حفظ امنیت سازمان مورد استفاده قرار گیرند که از بین آنها میتوان به سرورهای دیواره آتش، ضدویروس و... اشاره کرد. حتی یک اداره کوچک هم حداقل بین ۱۰ تا ۲۰ سرور یا رایانه شخصی دارد. این ماشینها به طور مداوم داده و لاگهایی تولید میکنند که حاوی اطلاعات مهمی هستند. اگر بخواهید متوجه حمله به سازمان خود یا نقصهای امنیتی شوید، باید این لاگها را به دقت بررسی کنید. طبیعی است که بررسی لاگ تعداد زیادی ماشین عملی زمانبر و تقریبا غیرممکن خواهد بود. اینجاست که سامانههای SIEM به کمک سازمان میآیند. سازمانها میتوانند با استفاده از سامانههای SIEM کلیه لاگهای درون سازمان را در یک محل تجمیع کرده و تحلیل کنند. یک سامانه SIEM قدرتمند علاوه بر اینکه لاگها را جمعآوری میکند، میتواند ارتباط بین آنها را شناسایی کند و برای مثال، چندین لاگ مرتبط با همدیگر را به صورت یک لاگ خلاصهشده قابل فهم، به شما نمایش دهد.
امروزه استفاده از سامانههای SIEM و ایجاد واحد SOC در سازمان به یک نیاز اساسی جهت افزایش امنیت سازمانها تبدیل شده است. عموما سامانههای SIEM به صورت تجاری ارائه میگردند. از مهمترین سامانههای SIEM میتوان به AlienVault USM، IBM QRadar، ArcSight و... اشاره کرد.
سامانه Splunk یکی از مطرحترین سامانههایی است که برای جستجو، نظارت و بررسی کلان دادهها (Big Data) توسط ماشین مورد استفاده قرار میگیرد و این کار از طریق رابط کاربری تحت وب این سامانه انجام میشود. از سامانه Splunk میتوان به عنوان یک سامانه SIEM نیز استفاده کرد. Splunk یک افزونه یا App با نام Splunk Enterprise Security (ES) دارد که به عنوان راهکار امنیت سایبری Splunk ارائه شده است.
در این مقاله آموزشی نحوه نصب و راهاندازی Splunk در سازمان را توضیح خواهیم داد و سپس با چگونگی ارسال لاگهای محصولات سایبرنو از جمله کیوسک امن سایبرنو، پویشگر چندموتوره و درایو امن سایبرنو به سامانه Splunk آشنا خواهیم شد.
در این مقاله میخوانید:
۱- آموزش نصب و راهاندازی Splunk
۲- ارسال لاگهای محصولات سایبرنو به اسپلانک
۱-۲ اضافه کردن Regular Expression
نصب Splunk هم در سیستم عامل ویندوز و هم لینوکس امکانپذیر است. ما در این مقاله نصب نسخه 9.0.0 آن را (به همراه Splunk ES 7.0.1) بر روی سیستم عامل Ubuntu 22.04 را ارائه میدهیم. برای این کار مشابه کلیه برنامههای دیگر سیستم عاملهای مبتنی بر Debian باید فایل deb که در اختیار شما قرار داده شده است را با دستور dpkg نصب کنید:
sudo dpkg -i ./splunk-9.0.0.1-9e907cedecb1-linux-2.6-amd64.deb
نکته: نصب Splunk نیاز به منابع سختافزاری بالایی دارد و حداقل ۱۲ گیگابایت حافظه اصلی به همراه 6 هسته پردازنده مورد نیاز است. هرچند برای استفاده واقعی از آن در سازمان خود نیاز به ۳۲ هسته پردازنده خواهید داشت!
بعد از عمل نصب، با دستور زیر کاری کنید که سرویس Splunk در هنگام شروع به کار سیستم عامل، به طور خودکار اجرا شود:
sudo /opt/splunk/bin/splunk enable boot-start
با وارد کردن دستور بالا باید License Agreement ارائه شده توسط Splunk را قبول و سپس یک نام کاربری و کلمه عبور برای دسترسی به Splunk تعیین کنید. سپس میتوانید با دستور زیر سرویس Splunk را اجرا کنید:
sudo service splunk start
حال چنانچه همه چیز به درستی پیش رفته باشد، با باز کردن آدرس زیر در مرورگر باید بتوانید به رابط کاربری سامانه Splunk دسترسی داشته باشید (به جای ip_addr، آدرس آیپی یا نام دامنه سرور Splunk را وارد کنید):
بعد از وارد کردن نام کاربری و کلمه عبور باید بتوانید وارد صفحه اصلی رابط کاربری Splunk شوید که مشابه شکل زیر است:
از آنجا که میخواهیم از Splunk به عنوان یک سامانه SIEM و ابزاری برای شناسایی تهدیدات سایبری استفاده کنیم، لذا باید Splunk ES را نیز نصب کنیم. عموما Appهای Splunk به صورت یک فایل SPL ارائه میشوند. این فایل از طریق رابط کاربری Splunk قابل نصب است. برای این کار بر روی آیکون چرخدنده در بخش Apps و سپس بر روی گزینه Install app from file کلیک کنید (همانند شکل زیر):
حالا فایل SPL را انتخاب کنید و گزینه Upload را بزنید. سپس تنظیمات مربوطه را عموما بر روی گزینه پیشفرض قرار دهید تا عملیات نصب به پایان برسد.
نکته: بعد از نصب Splunk ES به دلیل مسائل امنیتی، رابط کاربری Splunk از طریق HTTPS در دسترس خواهد بود (پروتکل HTTP غیرفعال خواهد شد).
نکته: اگر در هنگام نصب Splunk ES با خطای Content-Length of … too large روبرو شدید، آنگاه وارد سرور Splunk شوید و فایل موجود در مسیر زیر را با یک ویراستار متن (همانند nano) باز کنید (در صورت عدم وجود چنین فایلی، آن را بسازید):
/opt/splunk/etc/system/local/web.conf
سپس، رشته زیر را به آن اضافه کنید:
[settings]
max_upload_size = 1024
در مرحله بعدی از طریق پنل مدیریتی Splunk سرور را ریست کنید (در منوی بالا گزینه Settings را انتخاب کرده و سپس بر روی گزینه Server Controls کلیک کنید). با این کار، صفحهای همانند شکل زیر باز خواهد شد. در این صفحه گزینه Restart Splunk را انتخاب کنید:
برای ارسال لاگ محصولات کیوسک امن سایبرنو، پویشگر چندموتوره و درایو امن سایبرنو به سامانه Splunk راهکارهای زیادی وجود دارد. Splunk ابزاری با نام Universal Forwarder دارد که برای ارسال لاگها از ماشینهای مختلف به Splunk استفاده میشود. بنابراین، باید Splunk Universal Forwarder را در ماشینی که محصول سایبرنو بر روی آن نصب است، نصب کنیم. ابتدا با توجه به سیستم عامل ماشین سایبرنو، این نرمافزار را از سایت Splunk به آدرس زیر دانلود کنید (ممکن است جهت دانلود این نرمافزار نیاز به ثبتنام در وبسایت Splunk وجود داشته باشد):
https://www.splunk.com/en_us/download/universal-forwarder.html
پس از دانلود، نرمافزار را نصب کنید. چنانچه سیستم عامل ماشین سایبرنو Ubuntu است، دستور زیر را اجرا کنید:
sudo dpkg -i ./splunkforwarder-9.0.4-de405f4a7979-linux-2.6-amd64.deb
حالا باید در سرور Splunk یک Receiver تعریف کنید که لاگهای ارسالی از سمت Universal Forwarder را دریافت کند (در صورتی که قبلا Receiver نداشتهاید). برای این کار در رابط کاربری Splunk گزینه Settings را انتخاب و بر روی Forwarding and Receiving کلیک کنید. در پنجره باز شده یک Receiving Port جدید تعریف کنید (به طور پیشفرض میتوانید از پورت 9997 استفاده کنید):
همچنین، ترجیحا یک Index جدید در Splunk نیز بسازید تا لاگهای ارسالی از سمت این ماشین در این Index قرار گیرند. برای این کار در رابط کاربری Splunk، گزینه Settings را انتخاب و بر Indexes کلیک کنید، در پنجره بازشده گزینه New Index را انتخاب کنید تا با پنجرهای همانند شکل زیر روبرو شوید:
در این پنجره نام Index را برابر با یک نام دلخواه همانند Cyberno و بقیه تنظیمات را در همان حالت پیشفرض قرار دهید و بر روی گزینه Save کلیک کنید تا Index جدید شما ساخته شود.
بعد از این کار در ماشین سایبرنو دستور زیر را وارد کنید تا لاگهای این ماشین به Splunk ارسال شوند:
cd /opt/splunkforwarder/bin
sudo ./splunk add forward-server splunkserver:9997 -auth username:password
نکته: در دستور بالا به جای splunkserver آدرس IP یا نام دامنه سرور Splunk را وارد کنید. همچنین به جای username و password به ترتیب نام کاربری و رمز عبور Splunk Forwarder را وارد کنید.
حالا دستور زیر را وارد کنید تا نرمافزار Splunk Universal Forwarder به طور خودکار در هنگام شروع به کار ماشین اجرا شود:
sudo /opt/splunkforwarder/bin/splunk enable boot-start
سپس، برای ارسال لاگهای این محصولات به Splunk ES در پنل مدیریتی محصولات سایبرنو قابلیت ارسال لاگها به آدرس 127.0.0.1 را فعالسازی کنید (همانند تصویر زیر):
بعد از اعمال تنظیمات بالا، یک بار سیستم را راهاندازی مجدد نمایید. بعد از ارسال لاگها به 127.0.0.1 (یعنی آدرس رایانه فعلی) باید کاری کنید که کلیه syslogهای موجود در سیستم فعلی به سرور Spunk ارسال شود.
برای این کار دستور زیر را وارد کنید:
sudo /opt/splunkforwarder/bin/splunk add monitor /var/log/syslog -index cyberno -sourcetype syslog
دستور بالا باعث خواهد شد که Universal Forwader کلیه syslogها (محتوای فایل /var/log/syslog) را به سرور Splunk ارسال کند. این لاگها در یک Index با نام Cyberno قرار خواهند گرفت و فیلد sourcetype آنها برابر syslog خواهد بود.
بعد از اجرای دستور بالا جهت اطمینان از عملکرد درست سامانه سعی کنید کمی با محصول سایبرنو کار کرده تا لاگ تولید شود. حالا میتوانید با جستجوی عبارت index=cyberno در رابط کاربری Splunk لاگها را ببینید (همانند تصویر زیر):
چنانچه بخواهید لاگهای ارسالی از Cyberno را به طور دقیقتر در Splunk مشاهده کنید و فیلدهای مختلف آن را به طور جداگانه در Splunk ببینید، میتوانید یک Regular Expression برای این لاگها به Splunk بدهید تا Splunk به طور دقیق بتواند فرمت این لاگها را تجزیه و تحلیل کند. برای این کار در رابط کاربری Splunk وارد برنامه Enterprise Security شوید و در بخش Settings گزینه Fields را انتخاب و یک Field Extraction جدید اضافه کنید. نام Field Extraction را برابر عبارت زیر قرار دهید:
User_Email,User_IP,User_Agent,Log,Extra
فیلد sourcetype را برابر syslog قرار دهید و در بخش Extraction عبارت منظم زیر را وارد کنید:
(?=[^U]*(?:User_Email:|U.*User_Email:))^(?:[^:\n]*:){7}\s+(?P
در انتها بر روی گزینه Save کلیک کنید. چنانچه همه چیز را به درستی انجام شده باشد، خواهید توانست در بخش جستجوی افزونه Enterprise Security فیلدهای مختلف لاگهای ارسالی از سمت سایبرنو را ببینید. برای مثال، عبارت index=cyberno User_Email=info@cyberno.ir لاگهایی که توسط کاربری با آدرس پست الکترونیکی info [at] cyberno.ir در محصولات سایبرنو ایجاد شده است را نمایش میدهد (همانند شکل زیر):
حالا فرض کنید میخواهید کاری کنید که چنانچه بدافزاری توسط یکی از محصولات سایبرنو شناسایی شد، یک Notable Event در Splunk ES ایجاد یا از طریق پست الکترونیکی به شما اطلاعرسانی شود. برای انجام این کار میتوانید از Correlation Search استفاده کنید. جستجوی زیر در Splunk میتواند لیست پویشهای انجامشده توسط محصولات سایبرنو که در آنها بدافزاری یافت شده است را به شما نمایش دهد:
index=cyberno process=main User_Email="*" Log="Scan * has been finished." Extra="*" | eval malware_normal = json_extract(Extra, "malware.normal"), malware_compressed = json_extract(Extra, "malware.compressed") | where NOT (malware_normal="{}") OR NOT (malware_compressed="{}")
کافیست این جستجو را به عنوان یک Correlation Search به Splunk داده و بگویید که چنانچه خروجی این Search دارای نتیجه باشد، آنگاه عملیاتی همانند ارسال پست الکترونیکی یا ساخت یک Notable Event انجام شود. برای این کار در رابط کاربری Splunk ابتدا وارد Enterprise Security شوید و سپس در منوها به ترتیب گزینههای زیر را انتخاب کنید:
Configure → Content → Content Management
در صفحه بازشده که مشابه شکل بالا است، گزینه Create New Content و سپس گزینه Correlation Search را انتخاب کنید. حالا در صفحه بازشده (مشابه شبکه زیر) در فیلد Search Name نام Correlation Search (مثلا Cyberno) را وارد کنید. سپس، در فیلد Seach عبارت جستجویی که در بالا ارائه شده است را وارد کنید، در فیلد Cron Schedule همان عبارت پیشفرض یعنی عبارت */5 * * * * را نگهدارید تا این جستجو هر ۵ دقیقه به طور خودکار انجام شود، فیلد Earliest Time را برابر -10m قرار دهید تا در هر بار اجرا، جستجو محدود به زمان حال تا ۵ دقیقه قبل از آن باشد (با توجه به اینکه جستجو هر ۵ دقیقه یک بار اجرا میشود، این میزان کافی خواهد بود). نیازی به تغییر سایر فیلدها نیست.
در پایین بر روی گزینه Add New Response Action کلیک کنید تا یک Action در صورت بازگرداندن خروجی برای این جستجو اجرا شود. به عنوان مثال، چنانچه میخواهید یک Notable Event به طور خودکار اجرا شود، بر روی گزینه Notable کلیک کنید. سپس، در فیلد Title عنوان Notable را انتخاب (مثلا Malware Detected By Cyberno) و در انتها Correlation Search را ذخیره کنید.
حالا چنانچه بدافزاری توسط محصولات سایبرنو شناسایی شوید، در بخش Incident Review در Splunk ES قابل مشاهده خواهد بود.
نکته: این راهنما تنها برای ۳ محصول کیوسک امن سایبرنو، پویشگر چندموتوره و درایو امن سایبرنو قابل استفاده است. چنانچه نیاز به ارسال لاگهای سایر محصولات سایبرنو به سامانه Splunk را دارید، میتوانید از طریق پیشتیبانی سایبرنو با ما در ارتباط باشید.